//
// Created by 28228 on 2025/10/24.
//

//区间数字统计(2)

// #include<cstdio>
// int main() {
//     int L,R;
//     int i,count=0;
//     scanf("%d %d",&L,&R);
//     for (i=L;i<=R;i++){
//         int num=i;
//         while(num!=0){
//             int digit=num%10;   //对10取余，相当于每次都除以10不断缩小留下十位判断是否有2
//             if (digit==2){
//                 count++;
//             }
//             num=num/10;         //缩小
//         }
//     }
//     printf("%d\n",count);
// return 0;
// }


// //第k小整数
// //整体结构：输入->合成数组->从小到大排序->去重复->判断去重后是否还存在大于k的数->输出
// #include<stdio.h>
// //void arrage(int *arr[n])
// int main(){
//     //输入
//     int n,k,i,j,temp;
//     int arr[10001];
//     scanf("%d %d",&n,&k);
//
//     //合成数组
//     for(i = 0;i < n; i++){  //输入数字合成数组
//         scanf("%d",&arr[i]);
//     }
//
//     //计算（排序）
//     for(i = 0;i < n-1;i++){
//         for(j=0;j < n-1-i; j++){
//             if(arr[j] > arr[j+1]){
//                 temp=arr[j];
//                 arr[j]=arr[j+1];
//                 arr[j+1]=temp;
//             }
//         }
//     }       //从小到大排序完成
//
//
//     //去重
//     int uniqueArr[10001];
//     int len = 0; // 记录uniqueArr的长度
//     for (int i = 0; i < n; i++) {
//         // 要么第一个元素直接加入，或当前元素与前一个不同时加入
//         if (i == 0 || arr[i] != arr[i - 1]) {
//             uniqueArr[len++] = arr[i];//长度加1存入数组
//         }
//     }
//
//     //判断是否存在+输出
//     if (len < k) {
//         printf("NO RESULT\n");
//     } else {
//         printf("%d\n", uniqueArr[k - 1]); // 第k小的数对应索引k-1
//     }
//         return 0;
//     }

//最长上升子序列
// #include<stdio.h>
// #include<algorithm>
// using namespace std;
// int main(){
//     int n;
//     scanf("%d",&n);
//     int nums[1001];
//     for(int i = 0;i < n; ++i){
//         scanf("%d",&nums[i]);
//     }
//     int dp[1001];
//     int max_len=1;
//     for(int i = 0;i < n;++i){
//         dp[i]=1;
//         for(int j = 0;j < i; ++j){
//             if(nums[j]<nums[i]){
//                 dp[i]=max(dp[i],dp[j]+1);
//             }
//         }
//         max_len=max(max_len,dp[i]);
//     }
//     printf("%d\n",max_len);
//     return 0;
// }
// #include <stdio.h>
// #include <algorithm>
// using namespace std;
//
// int main() {
//     int n;
//     scanf("%d", &n);
//     int nums[1005];
//     for (int i = 0; i < n; ++i) {
//         scanf("%d", &nums[i]);
//     }
//
//     int dp[1005];
//     int max_len = 1;
//     for (int i = 0; i < n; ++i) {
//         dp[i] = 1;  // 初始时，每个元素自身是长度为1的子序列
//         for (int j = 0; j < i; ++j) {
//             if (nums[j] < nums[i]) {  // 若nums[j]小于nums[i]，则可延长以j结尾的子序列
//                 dp[i] = max(dp[i], dp[j] + 1);
//             }
//         }
//         max_len = max(max_len, dp[i]);  // 更新全局最大值
//     }
//
//     printf("%d\n", max_len);
//     return 0;
// }